** Authors: Sara Morell & Marzia Oceno
** Title: "The Intersectional Anger Gap: "How Race and Gender Condition the Impact of Anger on Participation"
** Journal: Public Opinion Quarterly
** This file recreates the following from the paper:

*******************************ANES 2020*****************************************

clear all
set more off
use "ANES_timeseries_2020_dataset.dta"

*********************
*** Figure 1 ***
*********************

svyset[pweight = V200010b]

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_mobilization", replace)

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_persuade", replace)

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_onlinerally", replace)

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_rally", replace)

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_button", replace)

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_volunteer", replace)

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_donate", replace)

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_voting", replace)


svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_mobilization", replace)

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_persuade", replace)

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_onlinerally", replace)

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_rally", replace)

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_button", replace)

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_volunteer", replace)

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_donate", replace)

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_voting", replace)


combomarginsplot "wm_donate" "wm_volunteer" "wm_button" "wm_rally" "wm_onlinerally" "wm_persuade" "wm_mobilization" "wm_voting", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Campaign Engagement Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen)

combomarginsplot "bm_donate" "bm_volunteer" "bm_button" "bm_rally" "bm_onlinerally" "bm_persuade" "bm_mobilization" "bm_voting", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Campaign Engagement Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen)

gr combine whitemen blackmen, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)


*********************
*** Figure 2 ***
*********************

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_mobilization", replace)

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_persuade", replace)

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_onlinerally", replace)

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_rally", replace)

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_button", replace)

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_volunteer", replace)

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_donate", replace)

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_voting", replace)


svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_mobilization", replace)

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_persuade", replace)

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_onlinerally", replace)

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_rally", replace)

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_button", replace)

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_volunteer", replace)

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_donate", replace)

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_voting", replace)


combomarginsplot "ww_donate" "ww_volunteer" "ww_button" "ww_rally" "ww_onlinerally" "ww_persuade" "ww_mobilization" "ww_voting", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Campaign Engagement Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen)

combomarginsplot "bw_donate" "bw_volunteer" "bw_button" "bw_rally" "bw_onlinerally" "bw_persuade" "bw_mobilization" "bw_voting", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Campaign Engagement Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen)

gr combine whitewomen blackwomen, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)


*********************************APPENDIX****************************************

*********************
*** Table B1 ***
*********************

svyset[pweight = V200010a]

sum angry if gender==1 & Race==1 [aw=V200010a]
sum angry if gender==0 & Race==1 [aw=V200010a]
sum angry if gender==1 & Race==2 [aw=V200010a]
sum angry if gender==0 & Race==2 [aw=V200010a]

svy: mean angry if gender==1 & Race==1 | gender==1 & Race==2, over(Race)
lincom _b[c.angry@1bn.Race] - _b[c.angry@2.Race]

svy: mean angry if gender==0 & Race==1 | gender==0 & Race==2, over(Race)
lincom _b[c.angry@1bn.Race] - _b[c.angry@2.Race]

*********************
*** Table B2 ***
*********************

svyset[pweight = V200010a]

sum fear if gender==1 & Race==1 [aw=V200010a]
sum fear if gender==0 & Race==1 [aw=V200010a]
sum fear if gender==1 & Race==2 [aw=V200010a]
sum fear if gender==0 & Race==2 [aw=V200010a]

svy: mean fear if gender==1 & Race==1 | gender==1 & Race==2, over(Race)
lincom _b[c.fear@1bn.Race] - _b[c.fear@2.Race]

svy: mean fear if gender==0 & Race==1 | gender==0 & Race==2, over(Race)
lincom _b[c.fear@1bn.Race] - _b[c.fear@2.Race]

*********************
*** Table C1 ***
*********************

svyset[pweight = V200010b]

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabC1.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C2 ***
*********************

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabC2.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C3 ***
*********************

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabC3.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table C4 ***
*********************

svy: logit voted angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate angry partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabC4.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D1 ***
*********************

svyset[pweight = V200010b]

svy: logit voted c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 1
outreg2 using tabD1.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D2 ***
*********************

svy: logit voted c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 0 & Race == 2
outreg2 using tabD2.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D3 ***
*********************

svy: logit voted c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 1
outreg2 using tabD3.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D4 ***
*********************

svy: logit voted c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.internaleff c.angry##c.externaleff partyid ageN south working education income religious polint if gender == 1 & Race == 2
outreg2 using tabD4.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D5 ***
*********************

svy: logit voted c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 1
outreg2 using tabD5.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D6 ***
*********************

svy: logit voted c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 0 & Race == 2
outreg2 using tabD6.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D7 ***
*********************

svy: logit voted c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 1
outreg2 using tabD7.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D8 ***
*********************

svy: logit voted c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Campaign engagement scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate c.angry##c.polint partyid ageN south working education income religious internaleff externaleff if gender == 1 & Race == 2
outreg2 using tabD8.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Figure D1 ***
*********************

svyset[pweight = V200010b]

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_mobilization_fear", replace)

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_persuade_fear", replace)

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_onlinerally_fear", replace)

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_rally_fear", replace)

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_button_fear", replace)

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_volunteer_fear", replace)

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_donate_fear", replace)

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(fear) saving("wm_voting_fear", replace)


svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_mobilization_fear", replace)

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_persuade_fear", replace)

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_onlinerally_fear", replace)

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_rally_fear", replace)

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_button_fear", replace)

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_volunteer_fear", replace)

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_donate_fear", replace)

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(fear) saving("bm_voting_fear", replace)

combomarginsplot "wm_donate_fear" "wm_volunteer_fear" "wm_button_fear" "wm_rally_fear" "wm_onlinerally_fear" "wm_persuade_fear" "wm_mobilization_fear" "wm_voting_fear", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Men") ytitle("") name(whitemen_fear)

combomarginsplot "bm_donate_fear" "bm_volunteer_fear" "bm_button_fear" "bm_rally_fear" "bm_onlinerally_fear" "bm_persuade_fear" "bm_mobilization_fear" "bm_voting_fear", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Men") ytitle("") name(blackmen_fear)

gr combine whitemen_fear blackmen_fear, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)

*********************
*** Figure D2 ***
*********************

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_mobilization_fear", replace)

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_persuade_fear", replace)

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_onlinerally_fear", replace)

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_rally_fear", replace)

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_button_fear", replace)

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_volunteer_fear", replace)

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_donate_fear", replace)

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(fear) saving("ww_voting_fear", replace)


svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_mobilization_fear", replace)

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_persuade_fear", replace)

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_onlinerally_fear", replace)

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_rally_fear", replace)

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_button_fear", replace)

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_volunteer_fear", replace)

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_donate_fear", replace)

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(fear) saving("bw_voting_fear", replace)

combomarginsplot "ww_donate_fear" "ww_volunteer_fear" "ww_button_fear" "ww_rally_fear" "ww_onlinerally_fear" "ww_persuade_fear" "ww_mobilization_fear" "ww_voting_fear", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among White Women") ytitle("") name(whitewomen_fear)

combomarginsplot "bw_donate_fear" "bw_volunteer_fear" "bw_button_fear" "bw_rally_fear" "bw_onlinerally_fear" "bw_persuade_fear" "bw_mobilization_fear" "bw_voting_fear", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Fear among Black Women") ytitle("") name(blackwomen_fear)

gr combine whitewomen_fear blackwomen_fear, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)

*********************
*** Table D25 ***
*********************

svyset[pweight = V200010b]

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Vote)noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Electoral participation scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
outreg2 using tabD25.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D26 ***
*********************

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Electoral participation scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
outreg2 using tabD26.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D27 ***
*********************

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Electoral participation scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
outreg2 using tabD27.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Table D28 ***
*********************

svy: logit voted fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Vote) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: regress mobilization fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Electoral participation scale) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit persuade fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Persuade others) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit onlinerally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Attend online rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit rally fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Attend in-person rally) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit button fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Wear button) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit volunteer fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Work for cand./party) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

svy: logit donate fear partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
outreg2 using tabD28.doc, ctitle(Donate) noaster stats(coef se pval) paren(se) bdec(2) sdec(2) append

*********************
*** Figure D5 ***
*********************

svy: regress mobilization angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_mobilization_3emot", replace)

svy: logit persuade angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_persuade_3emot", replace)

svy: logit onlinerally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_onlinerally_3emot", replace)

svy: logit rally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_rally_3emot", replace)

svy: logit button angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_button_3emot", replace)

svy: logit volunteer angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_volunteer_3emot", replace)

svy: logit donate angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_donate_3emot", replace)

svy: logit voted angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 1
margins, dydx(angry) saving("wm_voting_3emot", replace)


svy: regress mobilization angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_mobilization_3emot", replace)

svy: logit persuade angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_persuade_3emot", replace)

svy: logit onlinerally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_onlinerally_3emot", replace)

svy: logit rally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_rally_3emot", replace)

svy: logit button angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_button_3emot", replace)

svy: logit volunteer angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_volunteer_3emot", replace)

svy: logit donate angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_donate_3emot", replace)

svy: logit voted angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 0 & Race == 2
margins, dydx(angry) saving("bm_voting_3emot", replace)

combomarginsplot "wm_donate_3emot" "wm_volunteer_3emot" "wm_button_3emot" "wm_rally_3emot" "wm_onlinerally_3emot" "wm_persuade_3emot" "wm_mobilization_3emot" "wm_voting_3emot", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation  Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Men") ytitle("") name(whitemen_3emot)

combomarginsplot "bm_donate_3emot" "bm_volunteer_3emot" "bm_button_3emot" "bm_rally_3emot" "bm_onlinerally_3emot" "bm_persuade_3emot" "bm_mobilization_3emot" "bm_voting_3emot", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Men") ytitle("") name(blackmen_3emot)

gr combine whitemen_3emot blackmen_3emot, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)

*********************
*** Figure D6 ***
*********************

svy: regress mobilization angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_mobilization_3emot", replace)

svy: logit persuade angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_persuade_3emot", replace)

svy: logit onlinerally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_onlinerally_3emot", replace)

svy: logit rally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_rally_3emot", replace)

svy: logit button angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_button_3emot", replace)

svy: logit volunteer angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_volunteer_3emot", replace)

svy: logit donate angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_donate_3emot", replace)

svy: logit voted angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 1
margins, dydx(angry) saving("ww_voting_3emot", replace)


svy: regress mobilization angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_mobilization_3emot", replace)

svy: logit persuade angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_persuade_3emot", replace)

svy: logit onlinerally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_onlinerally_3emot", replace)

svy: logit rally angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_rally_3emot", replace)

svy: logit button angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_button_3emot", replace)

svy: logit volunteer angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_volunteer_3emot", replace)

svy: logit donate angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_donate_3emot", replace)

svy: logit voted angry fear enthusiasm partyid ageN south working education income religious internaleff externaleff polint if gender == 1 & Race == 2
margins, dydx(angry) saving("bw_voting_3emot", replace)

combomarginsplot "ww_donate_3emot" "ww_volunteer_3emot" "ww_button_3emot" "ww_rally_3emot" "ww_onlinerally_3emot" "ww_persuade_3emot" "ww_mobilization_3emot" "ww_voting_3emot", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among White Women") ytitle("") name(whitewomen_3emot)

combomarginsplot "bw_donate_3emot" "bw_volunteer_3emot" "bw_button_3emot" "bw_rally_3emot" "bw_onlinerally_3emot" "bw_persuade_3emot" "bw_mobilization_3emot" "bw_voting_3emot", ylabel(1 "Donate" 2 "Work for Cand./Party" 3 "Wear Button" 4 "Attend In-Person Rally" 5 "Attend Online Rally" 6 "Persuade Others" 7 "Electoral Participation Scale" 8 "Vote", labsize(small)) recast(scatter) x(_filenumber) horizontal scheme(plotplain) plot1opt(mcolor(gray) mlcolor(black) msymbol(D) msize(medsmall)) ci1opt(color(black) lw(.2)) xline(0, lc(red) lpattern(dash)) title("")xsize(8) ysize(6) xlabel(-.6(.2).6) xtick(-.7(.1).7) xtitle("Marginal Effect of Anger among Black Women") ytitle("") name(blackwomen_3emot)

gr combine whitewomen_3emot blackwomen_3emot, rows(1) xsize(7) ysize(3) iscale(1) scheme(plotplain)
